import { defineConfig, CommonServerOptions } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import dotenv, { DotenvParseOutput } from 'dotenv'

export default defineConfig((env) => {
  const envFileName = '.env' // 基础配置文件名
  const curEnvFileName = `${envFileName}.${env.mode}` // 根据环境变量的不同对应的配置文件名
  let server: CommonServerOptions = {} // 服务相关配置
  const envData = { ...dotenv.config().parsed, ...dotenv.config({ path: curEnvFileName }).parsed } as DotenvParseOutput
  
  if (env.mode === 'development') {
    server = {
      host: envData.VITE_HOST, // vite 服务器主机
      port: parseInt(envData.VITE_PORT), // vite 端口
      proxy: { // 配置代理
        // 请求地址是 127.0.0.1:5005/dang/xx/yy 时会把 /dang 前面的路径替换成 127.0.0.1:3002
        [envData.VITE_BASE_URL]: {
          target: envData.VITE_PROXY_DONAME
        }
      }
    }
  } else if (env.mode === 'production') {
    server = {
      host: envData.VITE_HOST,
      port: 80
    }
  }

  return {
    // base: '/dang', // 项目基础路径
    server,
    plugins: [
      vue(), // 使用 vite 可以处理 .vue 文件
    ],
    resolve: {
      alias: {
        '@': path.join(__dirname, 'src')
      }
    }
  }
})
